﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Xna.Framework;

namespace XNAFight.Characters.Core
{
    public class BoxesData
    {
        #region CHAMPS

        private string animeLiee;   // Nom de l'anime lliée à ces boites

        private List<List<Rectangle>> collisionBoxes;   // Liste des boites de colisions (impassables) pour l'animation liée
        private List<List<Rectangle>> hurtBoxes;        // Liste des boites correspondant aux zones du persos "touchables" par les hit boxes
        private List<List<Rectangle>> hitBoxes;         // Liste des boites correspondant à la zone active d'un coup

        #endregion

        #region PROPRIETES
        #endregion

        #region CONSTRUCTEUR

        public BoxesData(string _animeName, int _nbFramesAnime)
        {
            animeLiee = _animeName;

            collisionBoxes = new List<List<Rectangle>>();
            hurtBoxes = new List<List<Rectangle>>();
            hitBoxes = new List<List<Rectangle>>();

            for (int i = 0; i <= _nbFramesAnime; i++)
            {
                collisionBoxes.Add(new List<Rectangle>());
                hurtBoxes.Add(new List<Rectangle>());
                hitBoxes.Add(new List<Rectangle>());
            }

        }
        
        #endregion

        #region METHODES

        public void addCollisionBoxeAtFrame(int _frame, Rectangle _box)
        {
            collisionBoxes[_frame].Add(_box);
        }
        public void addHurtBoxeAtFrame(int _frame, Rectangle _box)
        {
            hurtBoxes[_frame].Add(_box);
        }
        public void addHitBoxeAtFrame(int _frame, Rectangle _box)
        {
            hitBoxes[_frame].Add(_box);
        }
        
        public List<Rectangle> getCollisionBoxesAtFrame(int _frame)
        {
            return collisionBoxes[_frame];
        }
        public List<Rectangle> getHurtBoxesAtFrame(int _frame)
        {
            return hurtBoxes[_frame];
        }
        public List<Rectangle> getHitBoxesAtFrame(int _frame)
        {
            return hitBoxes[_frame];
        }

        #endregion

    }
}
